Spring Security Nedir? Spring Boot ile Authentication ve Authorization (2026)
Spring Security nedir?
Spring Security, Spring Boot uygulamalarında authentication (kimlik doğrulama) ve authorization (yetkilendirme) işlemlerini yöneten bir güvenlik framework’üdür. HTTP isteklerini filter chain üzerinden kontrol ederek uygulama güvenliğini sağlar.
Spring Security nedir ve nasıl çalışır? Eğer Spring Boot ile güvenli bir API veya web uygulaması geliştiriyorsanız, authentication, authorization ve JWT kavramlarını doğru anlamanız gerekir.
- Spring Security nasıl çalışır?
- Filter chain mantığı nedir?
- Authentication ve authorization farkı nedir?
- Spring Boot’ta security config nasıl yapılır?
- JWT ile stateless authentication nasıl kurulur?
Token nedir, JWT nasıl çalışır ve authentication süreci nasıl ilerler öğrenmek için: Token Nedir? Access ve Refresh Token rehberine de göz atabilirsiniz.
Spring Security Nedir ve Ne İşe Yarar?
Spring Security, Java ve özellikle Spring Boot uygulamalarında kullanıcı kimliğini doğrulamak ve kaynaklara erişimi kontrol etmek için kullanılan güçlü bir güvenlik katmanıdır.
- Login mekanizması
- Role bazlı yetkilendirme
- JWT doğrulama
- CSRF koruması
- Session yönetimi
Spring Security Nasıl Çalışır? (Filter Chain Mantığı)
Spring Security, gelen HTTP isteklerini bir Security Filter Chain üzerinden geçirir. Her istek güvenlik filtreleri tarafından kontrol edilir, ardından authentication ve authorization işlemleri uygulanır.
Temel akış:
HTTP Request
↓
Security Filter Chain
↓
Authentication Manager
↓
Authorization Check
↓
Controller
Spring Boot’ta Basit Security Config (Spring Boot 2.x)
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/public/**").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.csrf().disable();
}
}
Bu yapı:
- /public/** → herkes erişebilir
- /admin/** → sadece ADMIN rolü erişebilir
- Diğer tüm endpointler → authentication gerektirir
WebSecurityConfigurerAdapter yaklaşımı yerine
SecurityFilterChain bean’i kullanılır.
Spring Security JWT ile Authentication Nasıl Yapılır?
Modern API mimarilerinde Spring Security genellikle JWT (JSON Web Token) ile birlikte kullanılır. Bu yaklaşım, session tutmadan stateless authentication sağlar.
JWT yapısını detaylı öğrenmek için: JWT Nedir?
Stateless vs Stateful Security
| Özellik | Stateful | Stateless (JWT) |
|---|---|---|
| Session | Var | Yok |
| Ölçeklenebilirlik | Daha düşük | Yüksek |
| Sunucu Hafızası | Kullanır | Kullanmaz |
Production Best Practices (2026)
- CSRF sadece session-based uygulamalarda açık bırakılmalı
- JWT süresi kısa tutulmalı
- Refresh token rotation uygulanmalı
- Password encoder (BCrypt) kullanılmalı
- Security config minimal tutulmalı
Sık Yapılan Hatalar
permitAllile tüm endpointleri açmak- JWT doğrulamasını filter chain’e eklememek
- CSRF mantığını yanlış anlamak
- Password’ü plain text saklamak
Sık Sorulan Sorular
Spring Security ne işe yarar?
Spring Security, kullanıcı kimliğini doğrulamak ve erişim kontrolü sağlamak için kullanılır.
Spring Security ile JWT zorunlu mu?
Hayır, zorunlu değildir. Ancak modern API mimarilerinde çoğunlukla JWT ile birlikte kullanılır.
Authentication ve Authorization farkı nedir?
Authentication kullanıcının kim olduğunu doğrular, authorization ise hangi kaynaklara erişebileceğini belirler.
Sonuç
Spring Security, modern Java uygulamalarında güvenliğin temel bileşenlerinden biridir. Doğru yapılandırıldığında hem güvenlik hem de ölçeklenebilirlik sağlar.
API performansını izlemek için JavaMelody rehberine de göz atabilirsiniz.